package com.atguigu.gmall.order.service;

import com.atguigu.gmall.model.enums.ProcessStatus;
import com.atguigu.gmall.model.order.OrderDetail;
import com.atguigu.gmall.model.order.OrderInfo;

import java.util.List;
import java.util.Map;

public interface OrderInfoService {
    //校验库存
    Boolean hasStock(OrderDetail orderDetail);

    //提交订单 (保存订单主表 订单详情表)
    Long insertOrder(OrderInfo orderInfo);

    //根据订单id查询订单对象
    OrderInfo getOrderInfo(Long orderId);

    //支付成功后 修改订单状态
    void updateOrderStatus(Long orderId, ProcessStatus processStatus);

    //初始化仓库需要的数据
    Map initWareOrder(Long orderId);

    //初始化仓库需要的数据 重载
    Map initWareOrder(OrderInfo orderInfo);

    //开始拆单 超级难
    List<OrderInfo> orderSplit(Long orderId, String wareSkuMap);
}
